package modelo;
import bean.Conexion;

import java.awt.Image;
import java.io.File;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class DetalleCompraDAO  extends ConexionDao{

	public DetalleCompraDAO() {
		super();	
	
	}	
	

	/*Integer cantidad_dtcom, Date fecha_dtcom,
			Compra idcompra_dtcom, String idproducto_dtcom*/

	
	
	public void registrarDetalleCompra(DetalleCompra dc) {
		String tiraSQL = "INSERT INTO detallecompra "+
		 				 "(cantidad_dtcom, fecha_dtcom, idcompra_dtcom, idproducto_dtcom) "+
		 				 "VALUES ("+dc.getCantidad_dtcom() +", '"+ dc.getFecha_dtcom() +
		 				 "','" + dc.getIdcompra_dtcom().getId_compr() +
		 				 "','"+ dc.getIdproducto_dtcom().getId_produ() +"')";
		Conexion.ejecutar(tiraSQL);
	}
	
	public void registrarDetalleCompraa(DetalleCompra dc){
		
		
	
	}
	
	
	
	public ArrayList<DetalleCompra> consultarDetalleCompra(String idcompra, Date fecha) {
		ArrayList<DetalleCompra> dcs = new ArrayList<DetalleCompra>();
		String tiraSQL = "SELECT * FROM detallecompra where idcompra_dtcom='"+ idcompra + "' and fecha_dtcom '="+ fecha +"'" ;
		ResultSet resultSet = Conexion.consultar(tiraSQL);	
		ProductoDAO productoDAO = null;
		CompraDAO compraDAO = null;
		Producto producto;
		Compra compra;
		try {
			while (resultSet.next()) {
				
				Integer cantidad = resultSet.getInt("cantidad_dtcom");
				Date fec = resultSet.getDate("fecha_dtcom");
				String idc = resultSet.getString("idcompra_dtcom");
				String idp = resultSet.getString("idproducto_dtcom");

				
				producto = productoDAO.consultarProductoPorId(idp);
				compra =  compraDAO.consultarCompraPorID(idc);
				
				DetalleCompra dc = new DetalleCompra(cantidad, fec, compra, producto);
				dcs.add(dc);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return dcs;
	}
	
	public DetalleCompra consultarDetalleCompraPorIdCompraYIdProducoyFecha(String idp, String idc, Date fecha) {
		
		DetalleCompra detalleCompra = null;
		
		String tiraSQL = "SELECT * FROM detallecompra where idcompra_dtcom ='"+ idc + "' and idproducto_dtcom ='" + idp + "' and fecha_dtcom ='" + fecha + "'";
		ResultSet resultSet = Conexion.consultar(tiraSQL);	
		CompraDAO compraDAO = null;
		ProductoDAO productoDAO = null;
		try {
			while (resultSet.next()) {
				
				Integer cantidad = resultSet.getInt("cantidad_dtcom");
				Date fec = resultSet.getDate("fecha_dtcom");
				String idcom = resultSet.getString("idcompra_dtcom");
				String idpr = resultSet.getString("idproducto_dtcom");
				
				
				Compra compra = compraDAO.consultarCompraPorID(idcom);
				
				Producto producto = productoDAO.consultarProductoPorId(idp);
				
				 detalleCompra = new DetalleCompra(cantidad, fec, compra, producto);
				
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return detalleCompra;			
}

	
	// Modificar
	public void modificarDetalleCompra(DetalleCompra dc) {
		
		String tiraSQL = "UPDATE detallecompra SET cantidad_dtcom = " + dc.getCantidad_dtcom() + ", fecha_dtcom = '"+ dc.getFecha_dtcom() +		 
				"', idcompra_dtcom = '" + dc.getIdcompra_dtcom().getId_compr() +  
				"', idproducto_dtcom = '" + dc.getIdproducto_dtcom() + " WHERE idcompra_dtcom ='"+ dc.getIdcompra_dtcom().getId_compr() + "' and idproducto_dtcom ='" 
				+ dc.getIdproducto_dtcom() + "' and fecha_dtcom ='" + dc.getFecha_dtcom() + "'";
				
		Conexion.ejecutar(tiraSQL);
	}
	
	
	// Eliminacion Fisica
		public void eliminarFisicaDetalleCompra(String idp, String idc, Date fecha) {
			String tiraSQL =  "DELETE FROM detallecompra WHERE idcompra_dtcom ='"+ idc + "' and idproducto_dtcom ='" + idp + "' and fecha_dtcom ='" + fecha + "'";
									
			Conexion.ejecutar(tiraSQL);
		}

		
}
